package com.yungu.swift.assets.driver.dao;


import com.yungu.swift.assets.driver.model.dto.CarModelDto;
import com.yungu.swift.assets.driver.model.param.CarModelSiteParam;
import com.yungu.swift.assets.driver.model.param.CarModelWayParam;
import com.yungu.swift.base.mapper.IMapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 车型业务Mapper
 * <p>
 *
 * @author cuixiuyin - Generate
 * @version 1.1.1-SNAPSHOT
 * @since 2018-07-02 11:19
 */
public interface CarModelMapper extends IMapper<CarModelDto> {

    /**
     * 设置为是否默认
     *
     * @param uuid         主键
     * @param businessType 业务类型
     * @param defaultLevel 是否设置默认值
     * @return int
     */
    int setDefault(@Param("uuid") String uuid, @Param("businessType") Integer businessType, @Param("defaultLevel") Integer defaultLevel);

    /**
     * 修改计价规则排序
     *
     * @param list List
     * @return int
     */
    int updateSort(@Param("list") List<Map> list);

    /**
     * 根据车型uuid删除对应车型
     *
     * @param uuid String
     * @return int
     */
    int deleteByUuid(@Param("uuid") String uuid);

    /**
     * 根据业务类型查询最大座位数
     */
    Integer getMaxSeats(Map params);

    /**
     * 根据路线 uuid 获取车型
     *
     * @param carModelWayParam
     * @return
     */
    List<CarModelDto> listCarModelByWay(CarModelWayParam carModelWayParam);

    /**
     * 根据起终点获取车型
     *
     * @param siteParam
     * @return
     */
    List<CarModelDto> listCarModelByPointSite(CarModelSiteParam siteParam);
}